
import java.util.Scanner;

/*

 */
public class PersonAddress
{
    private String firstName;
    private String lastName;
    private String e_mail;
    private String phoneNumber;
    /*
        前置条件：调用对象的实例变量含有值
        后置条件：返回firstName即姓的类型为String的值
     */
    public String getFirstName()
    {
        return firstName;
    }
    /*
        前置条件：调用对象的实例变量含有值
        后置条件：返回lastName即名的类型为String的值
     */
    public String getLastName()
    {
        return lastName;
    }
    /*
        前置条件：调用对象的实例变量含有值
        后置条件：返回E-mail即电子邮箱的类型为String的值
     */
    public String getEmail()
    {
        return e_mail;
    }
    /*
        前置条件：调用对象的实例变量含有值
        后置条件：返回phoneNumber即电话号码的类型为String的值
     */
    public String getPhoneNumber()
    {
        return phoneNumber;
    }
    /*
        前置条件：调用对象的实例变量含有值，从键盘获得输入
        后置条件：将获取的修改后的电话号码值写入原来的phoneNumber的值
     */
    public void setPhoneNumber()
    {
        Scanner Person =new Scanner(System.in);
        System.out.print("Enter the phoneNumber you want to modify:");
        this.phoneNumber = Person.nextLine();
    }
    /*
        前置条件：调用对象的实例变量含有值，从键盘获得输入
        后置条件：将获取的修改后的电子邮箱值写入原来的E-mail的值
     */
    public void setEmail()
    {
        Scanner Person =new Scanner(System.in);
        System.out.print("Enter the e-mail you want to modify:");
        this.e_mail = Person.nextLine();
    }
    /*
        前置条件：调用对象的实例变量含有值，变量为PersonAddress的实例对象
        后置条件：若传入的PersonAddress实例对象中的姓，名，电子邮箱，电话号码与调用对象的实例对象中的相应变量相同，返回值为真的布尔值，否则返回为假的布尔值
     */
    public boolean equals(PersonAddress temp)
    {
        if(this.firstName.equalsIgnoreCase(temp.firstName)&&this.lastName.equalsIgnoreCase(temp.lastName)&&this.phoneNumber.equalsIgnoreCase(temp.phoneNumber)&&this.e_mail.equalsIgnoreCase(temp.e_mail))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    /*
        前置条件：调用对象的实例变量含有值，变量为由equals函数完成后返回的布尔值
        后置条件：若布尔值为真，将为真时的数据输入屏幕，否则将为假时的的数据输入屏幕
     */
    public static void Same(boolean whether)
    {
        if(whether)
        {
            System.out.println("They are same!");
        }
        else
        {
            System.out.println("They are not same!");
        }
    }

    /*
        前置条件：调用对象的实例变量含有值，变量为PersonAddress的实例对象，从键盘中获取输入以对是否进行数据修改来判断和数据的修改
        后置条件：将传入的实例对象的变量即姓，名，电子邮箱，电话号码和判断后的修改后的数据输入屏幕
     */
    public static void outPut(PersonAddress temp)
    {
        Scanner Person =new Scanner(System.in);
        int i = 0;
        System.out.println("The firstName is "+temp.getFirstName() );
        System.out.println("The lastName is "+temp.getLastName());
        System.out.println("The e-mail is "+temp.getEmail());
        System.out.println("The phoneNumber is "+temp.getPhoneNumber());
        System.out.println("Do you want to modify the statistic:(Yes/No)");
        String whether=Person.nextLine();
        if(whether.equalsIgnoreCase("Yes"))
        {
            temp.setPhoneNumber();
            temp.setEmail();
            System.out.println("The e-mail after modifying is "+temp.getEmail());
            System.out.println("The phoneNumber after modifying is "+temp.getPhoneNumber());
        }

        System.out.println("\n");
    }
    /*
        前置条件：调用对象的实例变量含有值，变量为PersonAddress的实例对象，从键盘中获取输入以写入变量
        后置条件：返回传入实例变量
     */
    public static PersonAddress inPut(PersonAddress temp)
    {
        Scanner Person =new Scanner(System.in);
        System.out.print("Enter the firstName:");
        temp.firstName=Person.nextLine();
        System.out.print("Enter the lastName:");
        temp.lastName=Person.nextLine();
        System.out.print("Enter the e-mail:");
        temp.e_mail=Person.nextLine();
        System.out.print("Enter the phoneNumber:");
        temp.phoneNumber=Person.nextLine();
        return temp;
    }



}
